package wggcth.controle.action;

import com.opensymphony.xwork2.ActionSupport;
import java.util.Date;
import java.util.Map;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.interceptor.SessionAware;
import wggcth.persistencia.fachada.UsuariosFachada;
import wggcth.persistencia.vo.Usuario;


public class LogonAction extends ActionSupport implements SessionAware{

    private static final long serialVersionUID = 1L;
	private Map session;
	private String tipoAutenticacao;
	private String email;
	private String nome;
	private String mensagem;


        @Action(

            value="autenticar",

            results={
                @Result(name="setVariavelAmostra", location="/WEB-INF/pages/comuns/set_var_amo.jsp"),
                @Result(name="error", location="/WEB-INF/pages/comuns/login.jsp")
                
            }
        )

        /**************************/
	public String autenticar()
	/**************************/
	{
		UsuariosFachada ufac= new UsuariosFachada();
	
		if(!tipoAutenticacao.equals("anonimo")){
                        if(ufac.verificaUsuario(email)){
				return "setVariavelAmostra";
			}else{
				mensagem = "Usuário inválido!";
				return "error";
			}
		}else{
                    if(ufac.verificaUsuario("teste@teste.com.br")){
				return "setVariavelAmostra";
			}else{
				mensagem = "Não Existe Usuário Anônimo!";
				return "error";
			}
		}
		
	}
           @Action(

            value="cadastro",

            results={
                @Result(name="setVariavelAmostra", location="/WEB-INF/pages/comuns/set_var_amo.jsp"),
                @Result(name="error", location="/WEB-INF/pages/comuns/login.jsp")

            }
        )

	/**************************/
	public String cadastro()
	/**************************/
	{
		UsuariosFachada ufac= new UsuariosFachada();
                Usuario usuario = new Usuario();
                    usuario.setEmail(email);
                    usuario.setDatacadastro(new Date());
                    usuario.setNome(nome);
                if(ufac.verificaUsuario(email)){
			return "setVariavelAmostra";
		}else{
                    if(ufac.cadastrarUsuario(usuario)){
			return "setVariavelAmostra";
                    }else{
                    	return "error";
                    }
		}
	
	}

      


        @Action(

            value="sair",

            results={
                @Result(name="success", location="index")
            }
        )

	public String Sair(){
            if(session != null){
                session.remove(this);
            }
            return "success";
	}

	public Map getSession() {
		return session;
	}

	public void setSession(Map session) {
		this.session = session;
	}
	

	public String getTipoAutenticacao() {
		return tipoAutenticacao;
	}
	public void setTipoAutenticacao(String tipoAutenticacao) {
		this.tipoAutenticacao = tipoAutenticacao;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getMensagem() {
		return mensagem;
	}
	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}

}
